CPUのオーバークロックの基礎


高クロックは意味があるのか?

 CPUには動作周波数(動作クロック)というものがあり、多くの人にとってそのCPUの性能を考える上で最も関心を寄せる事項であろう。むしろCPUには他にカタログスペック的なものがないので、唯一の関心事といえるかもしれない。

 しかしCPUにはRISCCISCといった基礎的な違いがあり、動作周波数的に言うと到底同日には語れない。RISCプロセッサーであるDECのCPU Alphaチップは既に500MHzに達しており、だからといってPentiumII-266MHzの倍の性能が出ている訳ではない。
 また同じCISCプロセッサーでもCeleron, Pentium-II, III, K6-2, IIIといったアーキテクチャの違いも無視できることではない。事実6x86MXなどCyrixのCPUでは正式な(実際の)動作周波数ではなく、性能的に同一であるという意味のPentium-Rateという表現方法を用いている。
 またパソコンの性能はCPUだけで語れる訳でもない。チップセット、メモリ、二次キャッシュ、ビデオなどパソコンの性能に、特にその速度だけに絞ってみても、それを左右する要素は枚挙に暇がない。

 確かにパソコンにとってCPUの動作周波数だけが全てではない。とはいえCPUがパソコン性能の中で中心的なものであることは眼前たる事実であり、その中で動作周波数は最も重要な要素であることには変わりない。同じアーキテクチャであったり、他の条件が同じなら、やはりクロックの高いもの方がリニアに性能がいい。CyrixがPentium-Rateなどというものを用いるのも、詰まることころ動作周波数というものが非常に重要な尺度であることを証明しているようなものである。結局ユーザも、そしてそれゆえに技術者も高クロックを求めてやまない現実がそこにある。



そもそもCPUの動作周波数って何?

 CPUの動作周波数は、自動車のエンジンの最高出力などとは大分違います。エンジンの最高出力の場合,そのエンジン自身がその力を出し、またそこまでしか出せないというもので、文字通りそのエンジンが出すことができる最高の力です。ある意味で能動的な性能評価ということになります。

 一方CPUの動作周波数の場合、CPU自身が出すものではありません。外部からCPUに対して与えるものです。CPUでは周波数を自ら作り出すことはできません。こちらはどちらかというと受動的な要素ですね。

 高い周波数を発生させること自体はとても簡単です。単なる水晶発振子が作り出す特定の周波数を適当に倍増すればいいだけですから。500MHzでも1GHzでも発生させるだけなら簡単にできます。ですから誤解を恐れずに言えば、いくらでも高い周波数をCPUに与えることはできてしまうのです。

 問題はその周波数でちゃんと動くのかということで、これに突きます。CPUには動ける速度の周波数というのがあり、与えられても動けない速度があります。つまりある一定の周波数以上では、着いて来れないという状態になります。この着いて来れないというのはどういう状況なのかを説明しだすと大変なのでここでは省略します。(もしがんばってそれも勉強したい方はこちら「ICの周波数」(工事中)をどうぞ)いずれにしてもCPUには着いていける周波数というのがあり、正確には動作保証上限周波数というべきでしょう。

 まあ子供に説明するような表現をすれば、CPUが「僕はこれくらいの速度なら十分動けるから、その速度で動かしてもいいよ」というのがそのCPUの動作周波数です。



どうしてオーバークロックって可能なの?

 ところで動作を保証する訳ですから、ほぼ動ける程度では困ります。エンジンの最高出力の場合、メーカーは別に保証している訳ではないし、その出力がでなくても別段不都合はありません。どのみちそんな瞬間は殆ど無いのですからね。実際カタログ通りの出力がでるエンジンは殆どありません。しかしCPUの場合、周波数を公称したら常時その速度で動かされてしまう訳です。何時間も連続で使われるかもしれません。ですからどのような状況でも動けるような、自分の能力に対し十分余裕のある周波数を公称するはずです。いわゆるサバを読むということですね。こういうのを良くマージンを設けるなんて言いますよね。

 で、実際どれくらいのマージンを設けているかなのですが、正確なところは分かりませんが、もし製品がとても安定した性能をもっていて、固体差がない、つまり製品にばらつきがない場合はそれほど大きなマージンを設けなくても安全でしょう。しかし性能がシビアなハイテク製品の場合、小さな要素でも全体として大きな性能差の原因になるため、比較的ばらつきの大きい製品にならざるを得ません。CPUはハイテク中のハイテク製品ですから、今日の厳密な工業製品の中でもかなりばらつきの大きい製品であるようです。当然大きなマージンを設ける必要が出てきます。

 このマージンの大きさこそがCPUのオーバークロックの成功率を高めている最大の理由です。



ばらつきと製造工程

 実際Intelなどでは、Pentium-Iは例えば450MHzと500MHzを別の製造工程で作っている訳ではなく、それこそ550MHzも含めて、全て同じ製造工程で作られいるそうです。思ったより製造工程がおおざっぱなのに驚いた人もいるでしょう。
 そして出来上がったものを検査して、そこで500MHzに合格したものを450MHzとしてとか、550MHzの検査に合格したものを500MHzとして、ここで初めて振り分け、倍率設定、刻印をし出荷するのだそうです。

 つまり初めから厳密に何MHzをいくつ作ろうという計画があるのではなく、出来あがったもので、検査によって動作周波数が決まるという筋書きです。ですからよく「今はまだ600MHzは数がとれない」なんて言い方をします。

 基本的には、高い周波数の方が出来上がる可能性が低い、つまり数が少ないので、市場原理から価格が上がる。ちょうど一つの木材から、正目のきれいな材木はあまり取れないので高くなり、節のある汚い部分はたくさん取れるので、安いベニヤの材料にといったものと似たようなものです。

 同じように作りながら、450MHzでしか動かないものと550MHzで動くものが出てきてしまうのですから、相当なばらつきですよね。そのためかなりのマージンを設けて最終的な刻印がなされる訳です。

 どうです? これを聞くとなんかオーバークロックってできて当たり前のような気がしませんか?


オーバークロック耐性(ベンダー間の差)

 最近ではCeleronのものすごいオーバークロック耐性が話題になっていました。概ねIntel CPUは耐性が高く、他の互換ベンダーのCPUは低いようである。このオーバークロック耐性の差はどこからくるのだろうか。これは取りも直さずベンダーの技術力の差だと言わざるを得ない。しかし単純に技術力高いー>オーバークロック耐性高いという図式ではなく、これにはもう少し説明が必要なようだ。

 別に互換ベンダーも、ただ単に耐性の高い製品を出荷するのは、たやすいことである。今の出荷周波数決定基準を高めるだけでいい。つまり今500MHzとして売っているようなCPUを450MHzとして出荷すればいいだけである。まあマージンを増やすという言い方でもいいかもしれない。しかし現実にはそれができない。なぜできないのか。

 そもそもマージンを設けるのは、どんな状況でも公称周波数なら問題なく動き、ベンダーとしての信用を保つためである。マージンは大きければ大きいほど安全であり信用を保てる。しかし一方でやたら大きなマージンを設けていたのでは商売にならない。動作周波数は市場価格に直結している。500MHzで動くものを400MHzで売っていたのでは、採算がとれないだろう。これは結局企業の経営戦略、企業理念、技術レベル市場状況が絡んで、微妙なバランスで決定されるはずである。

 Intel CPUのオーバークロック耐性の高さは、Intelの余裕の現われである。信用保持を重視して大き目のマージンを設けても、550MHzを大量に安定して出荷できる。それに多少低い周波数で出荷しても、高いネームバリューでそれなりの価格を設定できる。互換ベンダーには全く逆のことが言える。多少信用保持を犠牲にしてでも、マージンを小さくしないとIntelと戦えるようなものを出荷できない訳である。しかもIntelより安い価格設定をせざるを得ない。Intelが500MHzを大量に供給しているのに、AMDがいつまでも400MHzや450MHzしか供給できないのでは、市場がそっぽを向くだろう。つまりAMDは技術的にも価格的にもちょっと無理して450MHzを出荷しているのである。

 従って技術力的にはIntelとAMDは、550と450位の差があるのだが、AMDが安定性を犠牲にして、450を出荷することで市場での差が小さくなるように見せかけている訳である。市場戦略上最低限この程度の差で留めておかないと、市場が急激にIntelに傾くという分析がAMD側にあるのだろう。

 しかしこのあたりの状況も、コードネーム「K7」と呼ばれてきた「Athron」の登場で一変するかもしれない。



オーバークロック耐性(ロットの違い)

 よく「このロットはオーバークロック耐性が高い」という噂が流れたりする。「ロット」というのは製造の1区切りのようなもののようだが、私もよく分かりません。ただ製造もただ無計画にのべつ幕なし行われているわけではないようで、いくつかの区切りを持っているのようで、これをロットというみたい。そしてあるロットでは突如非常にオーバークロック耐性の高い製品が出てくることがあります。

 比較的最近では、ちょっと過去のCPUになった嫌いのあるPentium-II 300MHzあたりにものすごい耐性のあるロットがあったようです。500MHzで動いているという話をよく聞きました。実際このような異常にオーバークロック耐性の高いロットの登場は、常にいろいろ情報に耳を傾けていないと得られません。私もかなり幅広くWatchしているつもりですが、見逃すことが多いです。まあ多くは運ですね。



Celeron 300A

 オーバークロックといえば、最近ではIntel Celeron 300Aを抜きに考えることはできません。Convingtonコアと呼ばれた初期Celeronが登場した時、かなりのオーバークロック耐性があったので、一部のマニアの間で、大変話題になりました。しかしこのConvingtonは、Pentium-IIの2次キャッシュ(Pentium-IIにとってその速さの要であった)をただ外しただけのものだったので、パフォーマンスは非常に悪く、オーバークロックして初めて普通のコストパフォーマンスになる程度だったので、あまり成功したとは言えませんでした。Convingtonのオーバークロック耐性の高さは、その足かせなっているであろう2次キャッシュがないためだと想像さていました。(これは確かに事実だったと思います) 所謂パフォーマンスとオーバークロック耐性のトレードオフだった訳ですが、本来パフォーマンスアップのためのオーバークロックですから、本末転倒と言わざるを得ません。当然一部のオーバークロックおたく以外には受け入れられませんでした。

 しかしその後Intelは、Celeronの本命である、128kBのフルスピード2次キャッシュを内蔵した新しいCeleron、コード名Mendocinoを投入してきました。ConvingtonコアのCeleron 300MHzと区別するため、Celeron 300AMHzといって呼ばれました。2次キャッシュに関しPentium-IIに比べ容量こそ4分の1ですが、速度はそのだったので、同クロックでもそれほど遜色のないパフォーマンスを持っているにも関わらず、圧倒的に安価だったので、一気に人気CPUになったのは、記憶に新しいでしょう。

 しかもConvingtonが持っていた異常なオーバークロック耐性を、ほぼそのまま維持していたのです。これによってCeleronのオーバークロック耐性の高さは、「2次キャッシュがないから」だけではないことが証明されました。勿論Pentium-IIの2次キャッシュのように、CPUのコアの外にあり、しかもサードパーティのチップ(NECのものが多いようです)を2次キャッシュに使った場合と、コアの中にある(よって同じウェハーである)Celeronの場合では、耐性の違いがあるのは容易に理解できます。また容量が少ないのも全く関係ないとは言えないでしょう。しかしそれにしてもMendocinoのオーバークロック耐性は尋常ではありません。

 前述のロットの違いに殆ど依存することなく、50%の耐性を常にもっています。更に現実にオーバークロックするにあたり、Pentium-IIなどは、昨年の4月あたりのDeschutesコアから倍率が固定になり、その手法が限定されてしまいました。後でも説明しますが、倍率が固定の場合、外部クロックを上げる他ありません。これも後述しましが、外部クロック(FSB)を上げる場合、様々な問題が出てくるので、決して素人にとって容易とは言えなくなります。しかしCeleronの場合、外部クロックが66MHzだったので、100MHzにすることで素人でも容易にオーバークロックが可能でした。(どうして66MHzから100MHzの外部クロックのオーバークロックは素人でも容易なのかも後述します)

 ここからは私の憶測に過ぎませんが、このCeleronの異常なオーバークロック耐性を次ぎのように分析しています。まずCeleronの登場の経緯を見てみましょう。

 Celeronは紛れも無くIntelにとっての戦略CPUです。安価なため低価格パソコンでの採用で人気の出ているAMDのK6-2などに対抗するために出してきたものであることは間違いありません。低価格パソコンは今やパソコン市場にとってばかにならない規模になっています。Intelとしても指をくわえて見ている訳にもいかなくなってきました。そこでPentium-IIの下の方(検査で350MHzなどの試験を落ちた)チップを、高価な2次キャッシュを外して、典型的な廉価版として登場させたというのが、初期(Convington)Celeronだっと思います。

 しかし一方でこればっかり売れては、Intelとしても困るので、ドル箱であるPentium-IIとは差別化しておきたい。そこでCeleronには廉価版というイメージを強調するため、IntelはCeleronの仕様にいくつかPentium-IIより下げます。まずは既にPentium-IIでは採用し、業界でも標準となりつつあったFSB-100MHzをサポートせず、従来の66MHzに留めます。また動作周波数を意識的に落としました。2次キャッシュ外しで本来十分に450MHzなどで動くものが多かったのですが、Pentium-IIと同じ周波数で出す訳にはいかなったのでしょう。

 しかしPentium-IIの生命線であった2次キャッシュ外しが、パフォーマンスにとって如何に不利であるかはIntelが最もよく知っていたはずなので、廉価版とはいっても、最初から2次キャッシュ内蔵は計画にあったはずです。しかし時期が重要なこのようなものがあまり後になるのは、まずいと考えて、とりあえず出したのがConvingtonだというのが真相でしょう。

 さて本命Mendocinoの生産ラインも整ってくると、300MHzなどの低い周波数でしか動かないようなものは殆どでない。つまり歩留まりが良すぎる訳です。当然といえば当然です。Celeron用の生産ラインは当然新しいラインですから、どうしても歩留まりのいいものになってしまいます。古い生産ラインであるPentium-IIのラインでも既に300MHz品などは殆ど出なくなっていた時期です。それに予想に反して、内蔵2次キャッシュはクロック上げの足かせにならなかった。普通に作っているとどうしても450MHz品になってしまう。まあConvington同様に意識的に保証動作周波数を下げるということをMendocinoでもせざるを得なかったと想像できます。

 これは余談ですが、128kBのフルスピード2次キャッシュは予想以上に高いパフォーマンスをもっており、実際512kBのハーフスピード2次キャッシュとほぼ同じ性能を持っていました。これではやはりIntelとしては困るので、あえてMendocinoの2次キャッシュを「Write Through」にする(Pentium-IIはWrite Backでこちらの方が通常はパフォーマンスがいい)ことでわざわざパフォーマンスを落としたりしています。また差別化のためのFSB-100MHz未サポートも引き続きつづけることになります。

 このようにCeleron 300Aの異常なオーバークロック耐性は、非常に政治的な理由から発生しているものだということができる訳です。

 そしてこれらを裏付ける事実がその後起きます。Pentium-IIIが登場してから、Celeronは動作周波数をどんどん上げていました。Intelのドル箱ハイエンドCPUとして、新たなCPU Pentium-IIIの登場により、Celeronとの差別化項目として、SSEというものも加わりました。従来の差別化項目を一つ減らすことができるようになったと考えられます。それが保証動作周波数という訳ですね。もう以前のように、あえて低くして売る必要性が減少したと考えられます。勿論ライバルK6-2の動作周波数上げの圧力もありますが、こう短期間に300MHzから466MHzに上がるのは不自然です。明らかに本来保証できた周波数を押さえていたのを、ただ単に解放したということがよく分かります。それに伴って往年のオーバークロック耐性は影を潜めました。466MHzが50%のオーバークロック700MHzで動いているという話は聞いたことがありません。もはや高クロックCeleronはオーバークロックに関しては普通のCPUになってしまったという訳です。

 市場の流れ、現状、戦略の狭間から生まれた、極めて類稀な、高オーバークロック耐性CPUとして、Celeron 300Aは、CPUの歴史にその名を残すことになるでしょう。将来プレミアがつくかもしれないので、ほしい人は今のうちに買いましょう。



オーバークロックの方法

 大分、うんちくが長くなってしまいましたが、実際のオーバークロックの方法と現実の問題点にはいりましょうか。これに関しては紙面を改めましょう。こちらへどうぞ。



目次へ

















テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル